#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/**
 * ${copyright}
 * Copyright (c) 2019. All Rights Reserved.
 */
package ${package}.basic.module.group.service;


import ${package}.common.bean.po.Group;
import ${package}.common.bean.po.Tree;
import ${package}.common.bean.vo.QueryBean;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * Description: 无法补充
 *
 * @author YL
 * @date 2019/8/6 15:28
 *
 * <pre>
 *              ${copyright}
 *      Copyright (c) 2019. All Rights Reserved.
 * </pre>
 */
public interface GroupService {

    /**
     * Description:
     * <获取机构类型列表>
     * @author 周婷婷
     * @date 17:11 2019/8/6
     * @return java.util.List<java.lang.Integer>
     **/
    List<Integer> getGroupTypeList();

    /**
     * Description:
     * <根据id查找机构>
     * @author 周婷婷
     * @date 17:11 2019/8/6
     * @param id 1
     * @return Group
     **/
    Group getGroupById(Long id);

    /**
     * Description:
     * <根据id查找该机构到根节点的所有机构>
     * @author 周婷婷
     * @date 17:11 2019/8/6
     * @param id 1
     * @return java.util.List<Group>
     **/
    List<Group> getGroupChain(Long id);

    /**
     * Description:
     * <获得机构数据列表>
     * @author 周婷婷
     * @date 17:12 2019/8/6
     * @param queryBean 1
     * @return com.github.pagehelper.PageInfo<Group>
     **/
    PageInfo<Group> queryGroupListByLimit(QueryBean queryBean);

    /**
     * Description:
     * <新增机构>
     * @author 周婷婷
     * @date 17:12 2019/8/6
     * @param group 1
     **/
    void addGroup(Group group);

    /**
     * Description:
     * <查询机构编码是否存在>
     * @author 周婷婷
     * @date 17:12 2019/8/6
     * @param code 1
     * @param id 2
     * @return java.lang.Boolean
     **/
    Boolean groupVerifyCode(String code, Long id);

    /**
     * Description:
     * <根据id更新机构信息>
     * @author 周婷婷
     * @date 17:12 2019/8/6
     * @param group 1
     **/
    void updateGroupById(Group group);

    /**
     * Description:
     * <根据id删除机构>
     * @author 周婷婷
     * @date 17:13 2019/8/6
     * @param id 1
     **/
    void deleteGroup(Long id);

    /**
     * Description:
     * <获取组织树>
     * @author songcx
     * @date 10:18 2019/9/4
     * @return java.util.List<${package}.common.bean.po.Tree>
     **/
    List<Tree> getGroupTree();
}
